From Verified Models to Verifiable Code
نویسندگان
چکیده
Declarative specifications of digital systems often contain parts that can be automatically translated into executable code. Automated code generation may reduce or eliminate the kinds of errors typically introduced through manual code writing. For this approach to be effective, the generated code should be reasonably efficient and, more importantly, verifiable. This paper presents a prototype code generator for the Prototype Verification System (PVS) that translates a subset of PVS functional specifications into an intermediate language and subsequently to multiple target programming languages. Several case studies are presented to illustrate the tool’s functionality. The generated code can be analyzed by software verification tools such as verification condition generators, static analyzers, and software model-checkers to increase the confidence that the generated code is correct.
منابع مشابه
From Verified Specifications to Verifiable Software∗
Declarative specifications of digital systems often contain parts that can be automatically translated into executable code. Automated code generation, as opposed to manual code writing, eliminates a potential source of errors when a prototype implementation of these models is required. Furthermore, code generation allows for better integration of formal methods into the software development pr...
متن کاملImpact of Specification Abstractions on Client Verification
Push-button automation is an important milestone for verification systems and a likely requirement for mainstream acceptance of the notion of ”verified software”. Multiple, logically-equivalent specifications may differ widely from the standpoint of their ability to contribute to verifiable client code. Using the types of problems considered at the VSTTE 2010 competition as motivation, we explo...
متن کاملVerified Implementations for Secure and Verifiable Computation
Formal verification of the security of software systems is gradually moving from the traditional focus on idealized models, to the more ambitious goal of producing verified implementations. This trend is also present in recent work targeting the verification of cryptographic software, but the reach of existing tools has so far been limited to cryptographic primitives, such as RSA-OAEP encryptio...
متن کاملTowards Verifiable Model Transformations: A Finite State Example
Embedded software in automotive applications is often used in safety critical applications, where the reliability of the system is of utmost importance. If a model-based development is followed, models of the code are often verified using techniques like model checking, but this in itself does not ensure that the generated code is also verified. Also, design models are often different from anal...
متن کاملCode Generation for Protocols from CPN models Annotated with Pragmatics
Model-driven engineering (MDE) provides a foundation for automatically generating software based on models. Models allow software designs to be specified focusing on the problem domain and abstracting from the details of underlying implementation platforms. When applied in the context of formal modelling languages, MDE further has the advantage that models are amenable to model checking which a...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009